package ar.edu.utn.frgp.mvc.servlets;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import ar.edu.utn.frgp.banco.domain.Cliente;
import ar.edu.utn.frgp.banco.domain.Cuenta;
import ar.edu.utn.frgp.beans.ClienteBean;
import ar.edu.utn.frgp.banco.dao.Implements.ImpClientes;
import ar.edu.utn.frgp.banco.exceptions.DataAccessException;


/**
 * Servlet implementation class SeleccionCuentaServlet
 */
public class SeleccionCuentaServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public SeleccionCuentaServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {	
		
		if ((request.getParameter("cuentas").equals("Cargar Cuentas"))) {
			cargar(request,response);
		}
		else{
			seleccionar(request,response);
		}
	}
	
	private void cargar(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		
		int id_cliente = Integer.parseInt(request.getSession()
		.getAttribute("ID_Cliente").toString());
		
		Cliente cl = new Cliente();
		ImpClientes clientedao = new ImpClientes();
		try {
			cl = clientedao.ObtenerCliente(id_cliente);
		} catch (DataAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

//		Cuenta cu = new Cuenta();
//
		ClienteBean clientebean = new ClienteBean();
//
		List<Cliente> lista_cliente = new ArrayList<Cliente>();
//		List<Cuenta> lista_cuenta = new ArrayList<Cuenta>();
//
//
//		// SQL para traer las cuentas del cliente
//
//		// guardo los atributos del objeto Cuentas
//		cu.setID_Cuenta(123);
//		cu.setNroCuenta(321);
//		cu.setSaldo(5000.00);
//		lista_cuenta.add(cu);
//
//		cu = new Cuenta() {
//		};
//		cu.setID_Cuenta(456);
//		cu.setNroCuenta(654);
//		cu.setSaldo(1200.00);
//		lista_cuenta.add(cu);
//
//		// guardo los atributos del objeto Cliente
//		cl.setID_Cliente(ID_Cliente);
//		cl.setCuentas(lista_cuenta);
//
		lista_cliente.add(cl);
//
		// guardo el objeto cliente en el objeto bean
		clientebean.setClientes(lista_cliente);

		request.setAttribute("cliente", clientebean);
		
		request.getRequestDispatcher("SeleccionCuentas.jsp").forward(request, response);
	}
	
	private void seleccionar(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		
		if (request.getParameter("cuentas").equals("Sin Cuenta")){
			request.getSession().setAttribute("ID_Cuenta", "0000");
			request.getSession().setAttribute("NroCuenta",  "0000");
		}
		else{
			request.getSession().setAttribute("ID_Cuenta", request.getParameter("cuentas"));
			request.getSession().setAttribute("NroCuenta", request.getParameter("NroCuenta"));
		}
				
		request.getRequestDispatcher("MainCliente.jsp").forward(request, response);		
	}
}	